//
// Created by ezio on 20-3-17.
//

#ifndef HAWK_CAM_IMG_PROCESS_H
#define HAWK_CAM_IMG_PROCESS_H
typedef unsigned char uchar;
#include "AlgoParam.h"


class ImageProcess
{
public:
//    ImageProcess();
//    ~ImageProcess();

    virtual int LoadImage(const char* path, int height, int width, AlgoParam* algoParam){};
    virtual int SaveImage(const char* path, AlgoParam* algoParam){};

    virtual void canny(AlgoParam* src, AlgoParam* dst,
                       double low_threshold, double high_threshold,
                       int apertureSize=3, bool L2gradient=false ){};
    virtual void sobel(AlgoParam* src, AlgoParam* dst,int ddepth,
                       int dx, int dy, int ksize=3,
                       double scale=1, double delta=0,
                       int borderType=0){};
    virtual void GaussianBlur(AlgoParam* 	src,
                              AlgoParam* 	dst,
                              int 	ksize,
                              double 	sigmaX,
                              double 	sigmaY = 0,
                              int 	borderType = 0
    ){};

    virtual void threshold(AlgoParam* 	src,
                           AlgoParam* 	dst,
                           double 	thresh,
                           double 	maxval,
                           int 	type
    ){};
/*
    virtual void blur(AlgoParam* 	src,
                      AlgoParam* 	dst,
                      Size 	ksize,
                      Point 	anchor = Point(-1,-1),
                      int 	borderType = BORDER_DEFAULT
    );
    */
};


#endif //HAWK_CAM_IMG_PROCESS_H
